<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script>
	// 1- defineProperty是Object对象下的一个方法
	// 2- defineProperty是一个拦截器，接收三个参数
	// 第一个参数是拦截的对象，
	// 第二个参数是拦截的属性，
	// 第三个参数是对拦截的描述对象
	let obj = {
		age:12,
		username:"zhangsan"
	}
	let _age = obj.age;
	Object.defineProperty(obj,"age",{
		// 当你读取age属性时会执行,返回值即是obj.age读取的值
		get(){
			console.log("get");
			return _age;
		},
		// 当你更新age属性时会执行。会接收一个参数，该参数为你要更新的值
		set(v){
			console.log("set",v)
			_age = v;
		}
	});
	// console.log(obj.age);// 100
	obj.age = 90;
	console.log(obj.age);// 90
</script>
</html>